/**
 * @项目名称: lession01
 * @文件名称: Datatype_Key.java
 * @Date: 2016年9月21日
 * @Copyright: 2016 www.yunhe.cn Inc. All rights reserved.
 * 注意：本内容仅限于云和数据公司内部传阅，禁止外泄以及用于其他的商业目的
*/
package com.thinkgem.redis;

import org.apache.log4j.Logger;
import org.junit.Test;
import redis.clients.jedis.Jedis;

/**
 * 
 * JEDIS常用的对键String的操作方法
 * 
 * @author ZSL
 *
 */
public class Datatype_String {

	/**
	 * 日志工具
	 */
	Logger logger = Logger.getLogger(Datatype_String.class);
	
	/**
	 * 测试操作
	 * 
	 * 以下是多数相对常用的String操作
	 * 
	 * 其他未涉及到的自己可以扩展查询命令练习下
	 * 
	 * 工作生产环境中根据具体业务，需要用到了再去查资料调用某个命令方法即可。
	 * 
	 */
	@Test
	public void operatorStr(){
		
		Jedis client = new Jedis("127.0.0.1",6379);
		
		//TODO:设置键值对
		client.set("user:1001:username","zhangsan");
		//TODO:获取某个KEY值
		client.get("user:1001:username");
		
		//TODO:追加字符
		client.append("user:1001:usernmae", "123");
		//TODO:设置KEY值并且带有效期
		client.setex("user:1001", 60, "125874");
		//TODO:如果KEY不存在则设置值，否则不设置
		client.setnx("user:1002", "457896");

		
		client.close();
	}
	
	/**
	 * 测试操作
	 * 
	 * 以下是String中的原子技术器
	 * 
	 * 其他未涉及到的自己可以扩展查询命令练习下
	 * 
	 * 工作生产环境中根据具体业务，需要用到了再去查资料调用某个命令方法即可。
	 * 
	 */
	@Test
	public void operatorNum(){
		
		Jedis client = new Jedis("127.0.0.1",6379);
		
		//TODO:设置键值对
		client.set("tuserPrimary","1");
		//TODO:自增1
		client.incr("tuserPrimary");
		//TODO:自减1
		client.decr("tuserPrimary");
		//TODO:自增5
		client.incrBy("tuserPrimary", 5);
		//TODO:自减2
		client.decrBy("tuserPrimary", 2);
		
		
		client.close();
	}

}
